import request from '@/common/request.js'	

/**
 * 检测版本并更新
 */
export function checkVersion(versionCode) {
	
	/* #ifdef MP-WEIXIN */
	weixinVersion()
	/* #endif */
	
	/* #ifdef APP */	
	appVersion(versionCode)
	/* #endif */
	
}

/**
 * 微信小程序版本
 */
function weixinVersion() { 
	
	const updateManager = wx.getUpdateManager()
	
	updateManager.onCheckForUpdate(function (res) { 	// 请求完新版本信息的回调
		console.log("weixinVersion hasUpdate", res.hasUpdate)
	})
	
	updateManager.onUpdateReady(function () {	 	// 新版本下载成功
		uni.showModal({
			title: '更新提示',
			content: '新版本已经准备好，是否重启应用？',
			success: function (res) {
				if (res.confirm) {				
					updateManager.applyUpdate()	// 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
				}
			}
		})
	})
	
	updateManager.onUpdateFailed(function () { 	// 新版本下载失败
		uni.showModal({
			title: '更新提示',
			content: '新版本下载失败'
		})
	})
	
}

// app版本
function appVersion(versionCode) {
	
	request({
		url: "api/version",
		method: "get",
		data: {
			type: "appCustomer"
		}
	}).then(res => { 
		
		if(res.data.versionCode > versionCode) { //更新到最新版本
		
			if(!res.data.path) return
			
			//下载
			let uploadTask =  uni.downloadFile({
				url: res.data.path, 
				success: (downloadResult) => {
					// 安装
					plus.runtime.install(
						downloadResult.tempFilePath, {
							force: true
						},
						function() {
							uni.showModal({
								title: '系统提示',
								content: '新版本已经更新完成，需要重启应用',
								showCancel: false,
								//用户点击确认重启
								success: function(res) {
									if (res.confirm) {
										plus.runtime.restart();
									} else if (res.cancel) {
										console.log('用户点击取消');
									}
								}
							});
						}
					)

				}
			})
		}
	})
}